// class Person {
//     constructor(){
//         console.log('--constructor');
//     }
// };
// let p1 = new Person();
// //--constructor
// console.log(p1.constructor === Person);
// console.log(p1 instanceof Person);
// console.log(Person.constructor);
// console.log(Person.constructor === Person.prototype.constructor);
// console.log(p1 instanceof Person.constructor);
// true
// true
// [Function: Function]
// false
// false
// console.log('---------------------');
// let p2 = new Person().constructor;
// //--constructor
// console.log(p2.constructor === Person);
// console.log(p2 instanceof Person);
// console.log(Person.constructor);
// console.log(Person.constructor === Person.prototype.constructor);
// console.log(p2 instanceof Person.constructor);
// --constructor
// false
// false
// [Function: Function]
// false
// true

// // 类可以像函数一样在任何地方定义，比如在数组中
// let classList = [
//     class {
//         constructor(id){
//             this.id_ = id;
//             console.log(`instanceof ${this.id_}`);
//         }
//     }
// ];
// function createInstance (classDefinition,id){
//     return new classDefinition(id);
// }
// let foo = createInstance(classList[0],3.1415926);//instanceof 3.141592

//因为是一个类表达式，所以类名是可选的
let person = new class {
    constructor(id){
        this.id = id;
        console.log(`instance ${this.id}`);
    }

}('bar-1001');
//instance bar-1001
console.log(person);//{ id: 'bar-1001' }